import Vue from 'vue'
import App from './App.vue'
import router from './router'
import axios from 'axios'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

import '../style/base.less'

Vue.config.productionTip = false

Vue.use(ElementUI)

// 1. axios优化 引入axios 所有组件无需在每个组件页引入，利用属性访问原则，访问到原型上的属性方法
Vue.prototype.$axios = axios

// 2. 配置基准地址
axios.defaults.baseURL = 'http://localhost:8888/api/private/v1/'

// 3. 配置请求拦截器
// 所有的请求在发送之前都会被拦截器进行处理
axios.interceptors.request.use(function (config) {
  config.headers.Authorization = localStorage.getItem('token')
  return config
}, function (error) {
  return Promise.reject(error)
})

// 4.响应拦截器
axios.interceptors.response.use(function (response) {
  response = response.data
  if (response.meta.tatus === 401) {
    localStorage.removeItem('token')
    response.meta.msg = '憨批，你的登录过期哒'
    router.push('./login')
  }
  return response
}, function (error) {
  return Promise.reject(error)
})
// --------------------------------------------------------------------------
new Vue({
  router,
  render: h => h(App)
}).$mount('#app')
